package com.kcwx.common.core.domain.entity;

import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import com.kcwx.common.core.domain.BaseEntity;
import com.kcwx.common.utils.BooleanJsonDeserializer;
import com.kcwx.common.utils.BooleanJsonSerializer;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 菜单权限表 sys_menu
 * 
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class SysMenu extends BaseEntity {
	private static final long serialVersionUID = 1L;

	/** 菜单名称 */
	private String menuName;

	/** 父菜单名称 */
	private String parentName;

	/** 父菜单ID */
	private Long parentId;

	/** 显示顺序 */
	private Integer orderNum;

	/** 路由地址 */
	private String path;

	/** 组件路径 */
	private String component;

	/** 路由参数 */
	private String query;

	/** 类型（M目录 C菜单 F按钮） */
	private String menuType;

	/** 显示状态（1显示 0隐藏） */
	private  Integer visible;

	/** 菜单状态（1启用 0停用） 默认1*/
	private Integer status;

	/** 权限字符串 */
	private String perms;

	/** 菜单图标 */
	private String icon;

	/** 组件名称 */
	private String menuCode;

	/** 重定向 */
	private String redirect;

	/** 外链/内嵌地址 */
	private String link;

	/** 是否为外链（1是 0否） */
	private Integer isFrame;

	/** 是否缓存（1缓存 0不缓存） */
	private Integer isCache;

	/** 是否固定 0否 1是 默认0*/
	private Integer isAffix;

	/** 子菜单 */
	private List<SysMenu> children = new ArrayList<SysMenu>();

}
